Computers typically comprise executable code referred to as the Basic Input/Output System (“BIOS”) code. The BIOS code is executed to initialize (boot-up) the computer and transfer control to an operating system, such as Microsoft® Windows® or Linux. Additionally, the BIOS tests the computer's hardware to ensure proper operation, locates specialized BIOS code residing on peripherals (e.g., graphics BIOS on a graphics board), and provides various interfaces to low-level functions of the computer such as access to storage drives, interaction with input devices, etc. for use by the operating system.
The BIOS is typically stored in a Read-Only-Memory (“ROM”) or Flash memory device addressable by the computer's processor at reset. While these devices provide access to the BIOS program to boot-up the computer, they also restrict the amount of memory available for BIOS storage.
The BIOS typically interacts with the computer user through a primitive textual interface, rather than the graphical interface users have come to expect when operating a modern computer. Through the BIOS user interface, the computer user can access and modify a variety of system settings. Examples of such settings include system date and time, drive configuration, security settings, power management settings, and memory timing. Additionally, the BIOS may perform user authentication by entry of a password, or through biometrics, such as fingerprint scanning. While textual interfaces are relatively easy to develop and consume few system resources, computer users have become accustomed to the simplicity and visual appeal of graphical interfaces. Thus, a flexible BIOS graphical interface that makes efficient use of memory and computational resources is desirable.